package com.ihr360.payroll.model.dto.salary.projection;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.ihr360.authority.sharing.model.IResourceControl;
import com.ihr360.commons.model.type.SalaryAdjustFormula;
import com.ihr360.payroll.model.dto.salary.meta.PayrollConfig;
import com.ihr360.payroll.model.vo.SalaryFieldVo;
import com.ihr360.rest.core.Ihr360Projection;

import java.util.List;

/**
 * @author tomtao
 */
@Ihr360Projection(name = "payrollConfigProjection", types = {PayrollConfig.class})
public interface PayrollConfigProjection extends IResourceControl {

    Long getId();

    String getName();

    boolean getEnabled();

    @JsonProperty("systemTemplate")
    boolean getIsSystemTemplate();

    SalaryAdjustFormula getSalaryAdjustFormula();

    @JsonProperty("fields")
    List<SalaryFieldVo> getFieldVos();

    @JsonProperty("salaryAdjustReferenceFields")
    List<SalaryFieldVo> getSalaryAdjustReferenceFieldVos();

}
